#####4.5 元组
# 列表非常适合用于储存在程序运行期间可能变化的数据集
# 列表是可以修改的，这对于处理网站的用户列表或游戏中的至关重要，
# 然而你有时候需要创建一系列不可修改的元素，元组可以满足这种要求
# Python将不能修改的值成为不可变的，而不可变的列表称为元组

### 4.5.1 定义元组
# 元组看起来很像列表，但使用圆括号而不是方括号来表示。
# 定义元组后，就可以使用索引来访问其元素，就像访问列表元素一样。

# 如果有一个大小不能改变的矩形，可将其长度和宽度储存在一个元组中，确保其不可进行修改

dimensions = (200, 50)
print(dimensions[0])
print(dimensions[1])

# 注意：严格地说，元组是由逗号标识的，圆括号只是让元组看起来更加整洁。更清晰。如果你要定义只包含一个元素的元组，必须在这个元素后面加上逗号：
my_t = (3,)
#创建只包含一个元素的元组通常没有意义，但自动生成的元组有可能只有一个元素

###4.5.2 遍历元组中的所有值

#像列表一样，也可以使用for循环来遍历元组中的所有值
dimensions = (200,50)
for dimension in dimensions:
    print(dimension)

####4.5.3 修改元组变量
#虽然不能修改元组的元素，但是可以给表示元组的变量赋值。
#例如要修改前述举行的尺寸，可重新定义整个元组
dimensions = (200,50)
print("Orignial dimensions:")
for dimension in dimensions:
    print(dimension)

dimensions = (400, 100)
print("\nModified dimensions:")
for dimension in dimensions:
    print(dimension)

# 开头4行代码定义一个元组，并将其储存的尺寸打印出来。接下来，将一个新元组关联到变量 dimensions，并打印新的尺寸。

# 相比于列表，元组是更简单的数据结构。如果需要储存一组在程序的整个生命周期内都不变的值，就可以使用元组

### 动手试一试

# 练习4.13 自助餐

foods = ("糍粑", "饺子", "蒸米粑", "汤圆", "年粑")
for food in foods:
    print(food)

# 非法操作  foods[2] = "猪jio"

foods = ("\n红烧肉", "猪jio", "蒸米粑", "汤圆", "年粑")
for food in foods:
    print(food)

#### 4.6.1 格式设置指南

# 要提出Python语言修改建议，需要编写Python增强提案（PEP）。
# PEP8是最古老的PEP之一，向Python程序员提供了代码格式指南。
# Python格式设置指南的编写者深知，代码被阅读的次数比被编写的次数多
# 代码编写出来之后，调试时需要阅读；再给程序添加新功能时，也需要花很长时间阅读；在与其他程序员共享代码时，也需要阅读
# 如果一定要在让代码易于编写和易于阅读之间做出选择Python程序员几乎总是会选择后者

### 提出一开始就编写出清晰的代码的攻略

### 4.6.2 缩进
#PEP 8 建议每级缩进都使用4个空格

### 4.6.3 行长
# 很多Python程序员建议每行不超过80个字符，即使用79个字符一下


### 4.6.4 空行
# 要将程序的不同部分分开，可使用空行
# 你绝对应该使用空行来组织程序文件，但是不要滥用
# 例如，有5行创建列表的代码，还有3行处理该列表的代码，用一个空格将这两部分隔开是合适的。










































